enum PART_GROUP {
	external_panel,
	internal_sections,
	inset
}

enum PANEL_TYPE {
	panel_26,
	panel_26_base,
	panel_26_base_entrance,
	panel_26_base_vent,
	panel_26_entrance,
	panel_26_ladder_window,
	panel_26_roof,
	panel_26_window,
	panel_31,
	panel_31_base,
	panel_31_base_sealed_begin,
	panel_31_base_sealed_end,
	panel_31_base_vent,
	panel_31_roof,
	panel_31_roof_sealed_begin,
	panel_31_roof_sealed_end,
	panel_31_sealed_begin,
	panel_31_sealed_end,
	panel_31_window_left,
	panel_31_window_left_sealed_begin,
	panel_31_window_left_sealed_end,
	panel_31_window_right,
	panel_31_window_right_sealed_begin,
	panel_31_window_right_sealed_end,
	panel_32,
	panel_32_balcony,
	panel_32_base,
	panel_32_base_vent,
	panel_32_roof,
	panel_32_window,
}

const panel_26_window = {
	'part_group': PART_GROUP.external_panel,
	'part_type': PANEL_TYPE.panel_26_window,
}

enum INSET_TYPE {
	balcony_door_walls,
	balcony_door_walls_sealed,
	balcony_window_walls,
	balcony_window_walls_sealed,
	entrance_cover,
	entrance_lamp,
	panel_26_base_entrance_panel,
	panel_26_base_entrance_walls,
	panel_26_base_entrance_walls_sealed,
	panel_26_entrance_walls,
	panel_26_entrance_walls_sealed,
	panel_26_entrance_window_walls,
	panel_26_entrance_window_walls_sealed,
	panel_26_ladder_window_walls,
	panel_26_ladder_window_walls_sealed,
	panel_26_window_walls,
	panel_26_window_walls_sealed,
	panel_32_base_vent_walls,
	panel_32_base_vent_walls_sealed,
	panel_32_window_walls,
	panel_32_window_walls_sealed,
}

const EXTERNAL_PANELS: Dictionary[PANEL_TYPE, PackedScene] = {
	PANEL_TYPE.panel_26 : preload("res://scenes/building_prefabs/panels/panel_26.tscn"),
	PANEL_TYPE.panel_26_base : preload("res://scenes/building_prefabs/panels/panel_26_base.tscn"),
	PANEL_TYPE.panel_26_base_entrance : preload("res://scenes/building_prefabs/panels/panel_26_base_entrance.tscn"),
	PANEL_TYPE.panel_26_base_vent : preload("res://scenes/building_prefabs/panels/panel_26_base_vent.tscn"),
	PANEL_TYPE.panel_26_entrance : preload("res://scenes/building_prefabs/panels/panel_26_entrance.tscn"),
	PANEL_TYPE.panel_26_ladder_window : preload("res://scenes/building_prefabs/panels/panel_26_ladder_window.tscn"),
	PANEL_TYPE.panel_26_roof : preload("res://scenes/building_prefabs/panels/panel_26_roof.tscn"),
	PANEL_TYPE.panel_26_window : preload("res://scenes/building_prefabs/panels/panel_26_window.tscn"),
	PANEL_TYPE.panel_31 : preload("res://scenes/building_prefabs/panels/panel_31.tscn"),
	PANEL_TYPE.panel_31_base : preload("res://scenes/building_prefabs/panels/panel_31_base.tscn"),
	PANEL_TYPE.panel_31_base_sealed_begin : preload("res://scenes/building_prefabs/panels/panel_31_base_sealed_begin.tscn"),
	PANEL_TYPE.panel_31_base_sealed_end : preload("res://scenes/building_prefabs/panels/panel_31_base_sealed_end.tscn"),
	PANEL_TYPE.panel_31_base_vent : preload("res://scenes/building_prefabs/panels/panel_31_base_vent.tscn"),
	PANEL_TYPE.panel_31_roof : preload("res://scenes/building_prefabs/panels/panel_31_roof.tscn"),
	PANEL_TYPE.panel_31_roof_sealed_begin : preload("res://scenes/building_prefabs/panels/panel_31_roof_sealed_begin.tscn"),
	PANEL_TYPE.panel_31_roof_sealed_end : preload("res://scenes/building_prefabs/panels/panel_31_roof_sealed_end.tscn"),
	PANEL_TYPE.panel_31_sealed_begin : preload("res://scenes/building_prefabs/panels/panel_31_sealed_begin.tscn"),
	PANEL_TYPE.panel_31_sealed_end : preload("res://scenes/building_prefabs/panels/panel_31_sealed_end.tscn"),
	PANEL_TYPE.panel_31_window_left : preload("res://scenes/building_prefabs/panels/panel_31_window_left.tscn"),
	PANEL_TYPE.panel_31_window_left_sealed_begin : preload("res://scenes/building_prefabs/panels/panel_31_window_left_sealed_begin.tscn"),
	PANEL_TYPE.panel_31_window_left_sealed_end : preload("res://scenes/building_prefabs/panels/panel_31_window_left_sealed_end.tscn"),
	PANEL_TYPE.panel_31_window_right : preload("res://scenes/building_prefabs/panels/panel_31_window_right.tscn"),
	PANEL_TYPE.panel_31_window_right_sealed_begin : preload("res://scenes/building_prefabs/panels/panel_31_window_right_sealed_begin.tscn"),
	PANEL_TYPE.panel_31_window_right_sealed_end : preload("res://scenes/building_prefabs/panels/panel_31_window_right_sealed_end.tscn"),
	PANEL_TYPE.panel_32 : preload("res://scenes/building_prefabs/panels/panel_32.tscn"),
	PANEL_TYPE.panel_32_balcony : preload("res://scenes/building_prefabs/panels/panel_32_balcony.tscn"),
	PANEL_TYPE.panel_32_base : preload("res://scenes/building_prefabs/panels/panel_32_base.tscn"),
	PANEL_TYPE.panel_32_base_vent : preload("res://scenes/building_prefabs/panels/panel_32_base_vent.tscn"),
	PANEL_TYPE.panel_32_roof : preload("res://scenes/building_prefabs/panels/panel_32_roof.tscn"),
	PANEL_TYPE.panel_32_window : preload("res://scenes/building_prefabs/panels/panel_32_window.tscn"),
}

const INSETS: Dictionary[INSET_TYPE, PackedScene] = {
	INSET_TYPE.balcony_door_walls: preload("res://scenes/building_prefabs/insets/balcony_door_walls.tscn"),
	INSET_TYPE.balcony_door_walls_sealed: preload("res://scenes/building_prefabs/insets/balcony_door_walls_sealed.tscn"),
	INSET_TYPE.balcony_window_walls: preload("res://scenes/building_prefabs/insets/balcony_window_walls.tscn"),
	INSET_TYPE.balcony_window_walls_sealed: preload("res://scenes/building_prefabs/insets/balcony_window_walls_sealed.tscn"),
	INSET_TYPE.entrance_cover: preload("res://scenes/building_prefabs/insets/entrance_cover.tscn"),
	INSET_TYPE.entrance_lamp: preload("res://scenes/building_prefabs/insets/entrance_lamp.tscn"),
	INSET_TYPE.panel_26_base_entrance_panel: preload("res://scenes/building_prefabs/insets/panel_26_base_entrance_panel.tscn"),
	INSET_TYPE.panel_26_base_entrance_walls: preload("res://scenes/building_prefabs/insets/panel_26_base_entrance_walls.tscn"),
	INSET_TYPE.panel_26_base_entrance_walls_sealed: preload("res://scenes/building_prefabs/insets/panel_26_base_entrance_walls_sealed.tscn"),
	INSET_TYPE.panel_26_entrance_walls: preload("res://scenes/building_prefabs/insets/panel_26_entrance_walls.tscn"),
	INSET_TYPE.panel_26_entrance_walls_sealed: preload("res://scenes/building_prefabs/insets/panel_26_entrance_walls_sealed.tscn"),
	INSET_TYPE.panel_26_entrance_window_walls: preload("res://scenes/building_prefabs/insets/panel_26_entrance_window_walls.tscn"),
	INSET_TYPE.panel_26_entrance_window_walls_sealed: preload("res://scenes/building_prefabs/insets/panel_26_entrance_window_walls_sealed.tscn"),
	INSET_TYPE.panel_26_ladder_window_walls: preload("res://scenes/building_prefabs/insets/panel_26_ladder_window_walls.tscn"),
	INSET_TYPE.panel_26_ladder_window_walls_sealed: preload("res://scenes/building_prefabs/insets/panel_26_ladder_window_walls_sealed.tscn"),
	INSET_TYPE.panel_26_window_walls: preload("res://scenes/building_prefabs/insets/panel_26_window_walls.tscn"),
	INSET_TYPE.panel_26_window_walls_sealed: preload("res://scenes/building_prefabs/insets/panel_26_window_walls_sealed.tscn"),
	INSET_TYPE.panel_32_base_vent_walls: preload("res://scenes/building_prefabs/insets/panel_32_base_vent_walls.tscn"),
	INSET_TYPE.panel_32_base_vent_walls_sealed: preload("res://scenes/building_prefabs/insets/panel_32_base_vent_walls_sealed.tscn"),
	INSET_TYPE.panel_32_window_walls: preload("res://scenes/building_prefabs/insets/panel_32_window_walls.tscn"),
	INSET_TYPE.panel_32_window_walls_sealed: preload("res://scenes/building_prefabs/insets/panel_32_window_walls_sealed.tscn"),
}
